Method Overloading এবং Method Overriding গাইড ও নোট

Computer Programming - প্যাসক্যাল (Pascal) - Object-Oriented Programming in Pascal (অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং)
273

মেথড ওভারলোডিং (Method Overloading) এবং মেথড ওভাররাইডিং (Method Overriding) হল অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর দুটি গুরুত্বপূর্ণ ধারণা। যদিও তারা কিছুটা সাদৃশ্যপূর্ণ, তবে তাদের মধ্যে মৌলিক পার্থক্য রয়েছে। এই ধারণাগুলি সাধারণত ক্লাস এবং অবজেক্টের মধ্যে কাজ করে এবং নির্দিষ্ট শর্তে মেথডগুলি ব্যবহার করা হয়।


১. মেথড ওভারলোডিং (Method Overloading)

মেথড ওভারলোডিং হল একই মেথড নামের সাথে একাধিক মেথড তৈরি করা, যেখানে প্রতিটি মেথডের প্যারামিটার ভিন্ন থাকে (যেমন সংখ্যায় বা ধরণে)। এটি মূলত একই ফাংশন বা মেথডের বৈচিত্র্যময় সংস্করণ তৈরির প্রক্রিয়া।

মেথড ওভারলোডিং এর উদ্দেশ্য:

  • একই মেথড নামের সাথে বিভিন্ন প্যারামিটার ব্যবহার করে একাধিক কাজ সম্পাদন করা।
  • এটি কোডের পুনরাবৃত্তি (redundancy) কমাতে সাহায্য করে এবং কোড ক্লিন এবং কমপ্যাক্ট রাখে।

উদাহরণ (Method Overloading in Java):

class Calculator {
    // Method to add two integers
    int add(int a, int b) {
        return a + b;
    }

    // Method to add three integers
    int add(int a, int b, int c) {
        return a + b + c;
    }

    // Method to add two doubles
    double add(double a, double b) {
        return a + b;
    }
}

public class Main {
    public static void main(String[] args) {
        Calculator calc = new Calculator();
        System.out.println(calc.add(10, 20));          // Calls the first add() method
        System.out.println(calc.add(10, 20, 30));      // Calls the second add() method
        System.out.println(calc.add(10.5, 20.5));      // Calls the third add() method
    }
}

এখানে, add() মেথডটি তিনটি ভিন্নভাবে ওভারলোড করা হয়েছে:

  • দুটি পূর্ণসংখ্যার যোগফল
  • তিনটি পূর্ণসংখ্যার যোগফল
  • দুটি দশমিক সংখ্যা যোগফল

মেথড ওভারলোডিং এর মধ্যে প্যারামিটার সংখ্যা বা ধরণে পরিবর্তন থাকতে হবে, তবে মেথডের নাম একই থাকবে।


২. মেথড ওভাররাইডিং (Method Overriding)

মেথড ওভাররাইডিং হল একটি সুপার ক্লাসের মেথডকে সাব-ক্লাসে আবার নতুন করে সংজ্ঞায়িত করা (অথবা পুনরায় বাস্তবায়ন করা)। এটি সুপার ক্লাসের মেথডের আচরণ পরিবর্তন করে এবং সাব-ক্লাসে নতুন আচরণ নির্ধারণ করে।

মেথড ওভাররাইডিং এর উদ্দেশ্য:

  • সুপার ক্লাসের মেথডের আচরণকে পরিবর্তন বা উন্নত করা।
  • যদি একই মেথড নাম এবং প্যারামিটার থাকে, তবে সাব-ক্লাসে নতুনভাবে আচরণ সংজ্ঞায়িত করা।

উদাহরণ (Method Overriding in Java):

class Animal {
    // Method in super class
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    // Overriding the sound() method in subclass (Dog)
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myAnimal = new Animal();
        myAnimal.sound();  // Calls the super class method

        Dog myDog = new Dog();
        myDog.sound();     // Calls the overridden method in subclass
    }
}

এখানে:

  • Animal ক্লাসে একটি sound() মেথড রয়েছে যা "Animal makes a sound" প্রিন্ট করে।
  • Dog ক্লাসে sound() মেথডটি Animal ক্লাসের মেথডকে ওভাররাইড করে "Dog barks" প্রিন্ট করে।

এই উদাহরণে Dog ক্লাসে sound() মেথডটি Animal ক্লাসের sound() মেথডকে ওভাররাইড করেছে।


মেথড ওভারলোডিং এবং মেথড ওভাররাইডিং এর মধ্যে পার্থক্য:

বৈশিষ্ট্যমেথড ওভারলোডিং (Method Overloading)মেথড ওভাররাইডিং (Method Overriding)
কোডের ব্যবহারএকই মেথড নামের সঙ্গে বিভিন্ন প্যারামিটার ব্যবহার করা হয়।সুপার ক্লাসের মেথডের আচরণ পরিবর্তন করা হয়।
মেথডের নামএকই নাম, কিন্তু প্যারামিটার বা ডেটা টাইপে পার্থক্য।একই নাম এবং প্যারামিটার ব্যবহার করা হয়।
পরিবর্তনপ্যারামিটার সংখ্যা বা টাইপ পরিবর্তন হয়।মেথডের বাস্তবায়ন (Implementation) পরিবর্তন হয়।
ফলাফলএকাধিক মেথড তৈরি করা হয়।মেথডের আচরণ পরিবর্তন হয়।
পর্যবেক্ষণকম্পাইল টাইমে (Compile-time) মেথড নির্বাচন হয়।রানটাইম (Runtime) এ মেথড নির্বাচন হয়।

সারাংশ (Summary)

  • মেথড ওভারলোডিং হল একই মেথড নামের মধ্যে বিভিন্ন প্যারামিটার বা আর্গুমেন্ট দিয়ে একাধিক মেথড সংজ্ঞায়িত করা। এটি কম্পাইল টাইমে নির্ধারিত হয়।
  • মেথড ওভাররাইডিং হল সুপার ক্লাসের মেথডের আচরণ সাব-ক্লাসে নতুনভাবে সংজ্ঞায়িত করা। এটি রানটাইমে নির্ধারিত হয়।

এই দুটি কৌশল OOP প্রোগ্রামিংয়ের শক্তিশালী উপাদান এবং কোডকে আরও পুনরায় ব্যবহারযোগ্য এবং সুনির্দিষ্ট করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...